#include <iostream>
using namespace std;

#include "Klassen.h"; // nicht vergessen !!


// Konstruktoren
StudentRecord::StudentRecord(double anAve): ave(anAve){
}

StudentRecord::StudentRecord(char* anName, double anAve): name(anName), ave(anAve){
}

StudentRecord::StudentRecord(){}

// Destruktor
StudentRecord::~StudentRecord(){}


// Methoden
void StudentRecord::setAve(double a){

	ave = a;
}

void StudentRecord::setName(char* a){

	name = a;
}

char* StudentRecord::getName(){

	return name;
}

// Statische Variable
int StudentRecord::cnt = 0;

// Staische Variable
char* StudentRecord::getNameOfClass(){
	return "StudentRecord";
}


	int main(){

		
		StudentRecord s1;	// Standardkonstruktoren gibt es nicht automatisch die muss man selber schreiben 
							// und Achtung beim erstellen eine Variable die Klammer () weglassen,
							// sonst verwechselt man es mit eine Funktion/Methode !!
		StudentRecord s2(2.2);
		StudentRecord s3("Doe", 4.4);


		s1.setName("Jon");
		cout << s1.getName() << endl;

		s2.setName("Doe");
		s2 = s1; // Es kopiert die Werte von der anderen Klasse ab
		cout << s2.getName() << endl;

		s1.setName("Doe");
		cout << s2.getName() << endl;


		s3.~StudentRecord(); // Durch den Destruktor wird so das Objekt geloescht


		// So werden statische Variablen oder Methoden aufgerufen.
		cout << StudentRecord::cnt << endl;

		cout << StudentRecord::getNameOfClass() << endl;


		return 0;
	}





